import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 输出结果为学号
 */

public class Test01 {

    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<>();

        System.out.println("请输入学号文件位置及名称：");
        Scanner scanner=new Scanner(System.in);
        String input=scanner.next();

        //存储学号，学号名单位置，F:\\xuehao.txt
        String stuNo="";
        String path=input;


        //读文件
        BufferedReader reader=null;

        try {
            reader=new BufferedReader(new FileReader(path));

            while ((stuNo=reader.readLine())!=null){
                map.put(stuNo,0);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {

            try {
//关闭文件
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


        //获取文件夹下所有文件，F:\\16信本2班Java作业一
        System.out.println("请输入作业文件夹的位置：");
        String pathname=scanner.next();

        File file=new  File(pathname);
        File[] files=file.listFiles();

        //遍历每一个文件
        for (File f:files){
            String fileName=f.getName();

            //保存提取到的学号
            String no="";

            //从文件中提取学号
            //正则表达式：1模板；2三个填空
            Matcher matcher= Pattern.compile("班(\\d+)").matcher(fileName);
            while(matcher.find()){
                no=matcher.group(1);
            }

            map.put(no,1);

        }

        //把value为0的打印出来
        //遍历每一个map
        /**
         * key        value
         * 1606101039   0
         */
        //未交作业学生学号：
        System.out.println("未交作业学生学号：");
        for (Map.Entry<String,Integer> entry:map.entrySet()){
            if (entry.getValue()==0){
                System.out.println(entry.getKey());
            }
        }
    }
}

